﻿using Microsoft.Extensions.Logging;
using MQTTnet;
using MQTTnet.Server;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
using Volo.Abp.EventBus.Distributed;

namespace Artizan.Iot.Hub.Mqtt.Server
{
    public class MqttInternalService : MqttServiceBase, IMqttInternalService, ITransientDependency
    {
        private readonly ILogger<MqttInternalService> _logger;
        private readonly IDistributedEventBus _distributedEventBus;

        public MqttInternalService(
            ILogger<MqttInternalService> logger,
            IDistributedEventBus distributedEventBus): base()
        {
            _logger = logger;
            _distributedEventBus = distributedEventBus;
        }

        public override void ConfigureMqttServer(MqttServer mqttServer)
        {
            base.ConfigureMqttServer(mqttServer);
        }

        public Task ExecuteSystemCommandAsync()
        {
            throw new NotImplementedException();
        }

        public Task PublishClientConnectedTimeAsync(string clientId)
        {
            throw new NotImplementedException();
        }

        public Task PublishClientIpAsync(string clientId)
        {
            throw new NotImplementedException();
        }

        public Task PublishConnectedClientsAsync()
        {
            throw new NotImplementedException();
        }

        public Task PublishConnectedClientsCountAsync()
        {
            throw new NotImplementedException();
        }

        public Task PublishDisconnectedClientsAsync()
        {
            throw new NotImplementedException();
        }

        public Task PublishDisconnectedClientsCountAsync()
        {
            throw new NotImplementedException();
        }
    }
}
